package com.divemotor.ventarepuestosinternet.model;

import java.io.Serializable;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

@Entity
@Table(schema="SISTEMAS", name="SIS_MAE_PERFIL")
public class Perfil implements Serializable {
	
	private static final long serialVersionUID = 5189302931930581903L;

	@Id
	@Column(name="COD_ID_PERFIL")
	private Integer idPerfil;
	
	@Column(name="DES_NOMBRE",length=50)
	private String nombre;
	
	@Column(name="TXT_URL_INICIO",length=100)
	private String urlInicio;
	
	@Column(name="TXT_COD_PERFIL",length=50)
	private String codigoPerfil;
	
	@ManyToOne
	@JoinColumn(name="COD_ID_SISTEMA")
	private Sistema sistema;
	
	
	@ManyToMany
	@JoinTable(schema="SISTEMAS",name = "SIS_MAE_OPCION_PERFIL", 
				joinColumns = @JoinColumn( name = "COD_ID_PERFIL",referencedColumnName = "COD_ID_PERFIL"), 
				inverseJoinColumns = @JoinColumn(name = "COD_ID_OPCION",referencedColumnName = "COD_ID_OPCION"))
	private List<Opcion> listaOpciones;
	
	
	@ManyToMany(cascade = CascadeType.ALL, mappedBy = "listaPerfiles")
	private List<Usuario> listaUsuarios;


	
	public Perfil() {
		
	}
	
	public Perfil(Integer idPerfil, String nombre) {
		this.idPerfil = idPerfil;
		this.nombre = nombre;
	}
	

	public Perfil(Integer idPerfil) {
		super();
		this.idPerfil = idPerfil;
	}

	/*** Getters and Setter ***/
	
	
	public Integer getIdPerfil() {
		return idPerfil;
	}


	public void setIdPerfil(Integer idPerfil) {
		this.idPerfil = idPerfil;
	}


	public String getNombre() {
		return nombre;
	}


	public void setNombre(String nombre) {
		this.nombre = nombre;
	}


	public Sistema getSistema() {
		return sistema;
	}


	public void setSistema(Sistema sistema) {
		this.sistema = sistema;
	}


	public List<Opcion> getListaOpciones() {
		return listaOpciones;
	}


	public void setListaOpciones(List<Opcion> listaOpciones) {
		this.listaOpciones = listaOpciones;
	}


	public List<Usuario> getListaUsuarios() {
		return listaUsuarios;
	}

	public String getUrlInicio() {
		return urlInicio;
	}

	public void setUrlInicio(String urlInicio) {
		this.urlInicio = urlInicio;
	}

	public void setListaUsuarios(List<Usuario> listaUsuarios) {
		this.listaUsuarios = listaUsuarios;
	}

	public String getCodigoPerfil() {
		return codigoPerfil;
	}

	public void setCodigoPerfil(String codigoPerfil) {
		this.codigoPerfil = codigoPerfil;
	}


	

	
}
